 /* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.





Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#import <Foundation/Foundation.h>
#import <JDCloudOCSDKLive/LiveModel.h>

@implementation DomainTemplateConfig
-(id) initWithAppName:(NSString*) appName
      streamName:(NSString*)streamName
      templateId:(NSNumber*)templateId
      template:(NSString*)template
      modules:(NSString*)modules { 
     self.appName = appName;               
     self.streamName = streamName;               
     self.templateId = templateId;               
     self.template = template;               
     self.modules = modules;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self templateId])
    {
        [result setValue:[self templateId] forKey:@"templateId"];
    }
    if([self template])
    {
        [result setValue:[self template] forKey:@"template"];
    }
    if([self modules])
    {
        [result setValue:[self modules] forKey:@"modules"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.appName = [dictionary objectForKey:@"appName"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.templateId = [dictionary objectForKey:@"templateId"];
    self.template = [dictionary objectForKey:@"template"];
    self.modules = [dictionary objectForKey:@"modules"];
    return self;
}
 @end
@implementation QualityDetectionTemplate
-(id) initWithTemplate:(NSString*) template
      modules:(NSString*)modules { 
     self.template = template;               
     self.modules = modules;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self template])
    {
        [result setValue:[self template] forKey:@"template"];
    }
    if([self modules])
    {
        [result setValue:[self modules] forKey:@"modules"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.template = [dictionary objectForKey:@"template"];
    self.modules = [dictionary objectForKey:@"modules"];
    return self;
}
 @end
@implementation QualityDetectionConfig
-(id) initWithPublishDomain:(NSString*) publishDomain
      appName:(NSString*)appName
      streamName:(NSString*)streamName
      qualityDetectionConfigValue:(NSArray<NSString*>*)qualityDetectionConfigValue { 
     self.publishDomain = publishDomain;               
     self.appName = appName;               
     self.streamName = streamName;               
     self.qualityDetectionConfigValue = qualityDetectionConfigValue;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self qualityDetectionConfigValue])
    {
        [result setValue:[self qualityDetectionConfigValue] forKey:@"qualityDetectionConfig"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    self.appName = [dictionary objectForKey:@"appName"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.qualityDetectionConfigValue = [dictionary objectForKey:@"qualityDetectionConfig"];
    return self;
}
 @end
@implementation UserBucket
-(id) initWithName:(NSString*) name { 
     self.name = name;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    return self;
}
 @end
@implementation LiveSort
-(id) initWithName:(NSString*) name
      direction:(NSString*)direction { 
     self.name = name;               
     self.direction = direction;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self direction])
    {
        [result setValue:[self direction] forKey:@"direction"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.direction = [dictionary objectForKey:@"direction"];
    return self;
}
 @end
@implementation TemplateBinding
-(id) initWithPublishDomain:(NSString*) publishDomain
      appName:(NSString*)appName
      streamName:(NSString*)streamName
      template:(NSString*)template { 
     self.publishDomain = publishDomain;               
     self.appName = appName;               
     self.streamName = streamName;               
     self.template = template;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self template])
    {
        [result setValue:[self template] forKey:@"template"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    self.appName = [dictionary objectForKey:@"appName"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.template = [dictionary objectForKey:@"template"];
    return self;
}
 @end
@implementation LiveFilter
-(id) initWithName:(NSString*) name
      operatorValue:(NSString*)operatorValue
      values:(NSArray<NSString*>*)values { 
     self.name = name;               
     self.operatorValue = operatorValue;               
     self.values = values;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self operatorValue])
    {
        [result setValue:[self operatorValue] forKey:@"operator"];
    }
    if([self values])
    {
        [result setValue:[self values] forKey:@"values"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.operatorValue = [dictionary objectForKey:@"operator"];
    self.values = [dictionary objectForKey:@"values"];
    return self;
}
 @end
@implementation TimeshiftPlayDomain
-(id) initWithPlayDomain:(NSString*) playDomain
      timeshiftStatus:(NSString*)timeshiftStatus
      playType:(NSString*)playType { 
     self.playDomain = playDomain;               
     self.timeshiftStatus = timeshiftStatus;               
     self.playType = playType;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self playDomain])
    {
        [result setValue:[self playDomain] forKey:@"playDomain"];
    }
    if([self timeshiftStatus])
    {
        [result setValue:[self timeshiftStatus] forKey:@"timeshiftStatus"];
    }
    if([self playType])
    {
        [result setValue:[self playType] forKey:@"playType"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.playDomain = [dictionary objectForKey:@"playDomain"];
    self.timeshiftStatus = [dictionary objectForKey:@"timeshiftStatus"];
    self.playType = [dictionary objectForKey:@"playType"];
    return self;
}
 @end
@implementation RestartPlayDomain
-(id) initWithPlayDomain:(NSString*) playDomain
      restartStatus:(NSString*)restartStatus
      playType:(NSString*)playType { 
     self.playDomain = playDomain;               
     self.restartStatus = restartStatus;               
     self.playType = playType;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self playDomain])
    {
        [result setValue:[self playDomain] forKey:@"playDomain"];
    }
    if([self restartStatus])
    {
        [result setValue:[self restartStatus] forKey:@"restartStatus"];
    }
    if([self playType])
    {
        [result setValue:[self playType] forKey:@"playType"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.playDomain = [dictionary objectForKey:@"playDomain"];
    self.restartStatus = [dictionary objectForKey:@"restartStatus"];
    self.playType = [dictionary objectForKey:@"playType"];
    return self;
}
 @end
@implementation TimeshiftPublishDomain
-(id) initWithPublishDomain:(NSString*) publishDomain { 
     self.publishDomain = publishDomain;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    return self;
}
 @end
@implementation RestartPublishDomain
-(id) initWithPublishDomain:(NSString*) publishDomain { 
     self.publishDomain = publishDomain;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    return self;
}
 @end
@implementation WatermarkTemplate
-(id) initWithPosition:(NSNumber*) position
      offsetUnit:(NSString*)offsetUnit
      offSetX:(NSNumber*)offSetX
      offSetY:(NSNumber*)offSetY
      sizeUnit:(NSString*)sizeUnit
      width:(NSNumber*)width
      height:(NSNumber*)height
      url:(NSString*)url
      template:(NSString*)template { 
     self.position = position;               
     self.offsetUnit = offsetUnit;               
     self.offSetX = offSetX;               
     self.offSetY = offSetY;               
     self.sizeUnit = sizeUnit;               
     self.width = width;               
     self.height = height;               
     self.url = url;               
     self.template = template;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self position])
    {
        [result setValue:[self position] forKey:@"position"];
    }
    if([self offsetUnit])
    {
        [result setValue:[self offsetUnit] forKey:@"offsetUnit"];
    }
    if([self offSetX])
    {
        [result setValue:[self offSetX] forKey:@"offSetX"];
    }
    if([self offSetY])
    {
        [result setValue:[self offSetY] forKey:@"offSetY"];
    }
    if([self sizeUnit])
    {
        [result setValue:[self sizeUnit] forKey:@"sizeUnit"];
    }
    if([self width])
    {
        [result setValue:[self width] forKey:@"width"];
    }
    if([self height])
    {
        [result setValue:[self height] forKey:@"height"];
    }
    if([self url])
    {
        [result setValue:[self url] forKey:@"url"];
    }
    if([self template])
    {
        [result setValue:[self template] forKey:@"template"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.position = [dictionary objectForKey:@"position"];
    self.offsetUnit = [dictionary objectForKey:@"offsetUnit"];
    self.offSetX = [dictionary objectForKey:@"offSetX"];
    self.offSetY = [dictionary objectForKey:@"offSetY"];
    self.sizeUnit = [dictionary objectForKey:@"sizeUnit"];
    self.width = [dictionary objectForKey:@"width"];
    self.height = [dictionary objectForKey:@"height"];
    self.url = [dictionary objectForKey:@"url"];
    self.template = [dictionary objectForKey:@"template"];
    return self;
}
 @end
@implementation LiveStreamRecordConfig
-(id) initWithPublishDomain:(NSString*) publishDomain
      appName:(NSString*)appName
      streamName:(NSString*)streamName
      watermarkConfig:(NSArray<NSString*>*)watermarkConfig { 
     self.publishDomain = publishDomain;               
     self.appName = appName;               
     self.streamName = streamName;               
     self.watermarkConfig = watermarkConfig;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self watermarkConfig])
    {
        [result setValue:[self watermarkConfig] forKey:@"watermarkConfig"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    self.appName = [dictionary objectForKey:@"appName"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.watermarkConfig = [dictionary objectForKey:@"watermarkConfig"];
    return self;
}
 @end
@implementation PlayDataStatisticResultData
-(id) initWithAvgbandwidth:(NSNumber*) avgbandwidth
      maxavgbandwidthtime:(NSNumber*)maxavgbandwidthtime
      pv:(NSNumber*)pv
      flow:(NSNumber*)flow
      playercount:(NSNumber*)playercount { 
     self.avgbandwidth = avgbandwidth;               
     self.maxavgbandwidthtime = maxavgbandwidthtime;               
     self.pv = pv;               
     self.flow = flow;               
     self.playercount = playercount;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self avgbandwidth])
    {
        [result setValue:[self avgbandwidth] forKey:@"avgbandwidth"];
    }
    if([self maxavgbandwidthtime])
    {
        [result setValue:[self maxavgbandwidthtime] forKey:@"maxavgbandwidthtime"];
    }
    if([self pv])
    {
        [result setValue:[self pv] forKey:@"pv"];
    }
    if([self flow])
    {
        [result setValue:[self flow] forKey:@"flow"];
    }
    if([self playercount])
    {
        [result setValue:[self playercount] forKey:@"playercount"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.avgbandwidth = [dictionary objectForKey:@"avgbandwidth"];
    self.maxavgbandwidthtime = [dictionary objectForKey:@"maxavgbandwidthtime"];
    self.pv = [dictionary objectForKey:@"pv"];
    self.flow = [dictionary objectForKey:@"flow"];
    self.playercount = [dictionary objectForKey:@"playercount"];
    return self;
}
 @end
@implementation SnapshotCountStatisticData
-(id) initWithCount:(NSNumber*) count { 
     self.count = count;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self count])
    {
        [result setValue:[self count] forKey:@"count"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.count = [dictionary objectForKey:@"count"];
    return self;
}
 @end
@implementation FileStorageStatisticData
-(id) initWithSize:(NSNumber*) size { 
     self.size = size;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self size])
    {
        [result setValue:[self size] forKey:@"size"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.size = [dictionary objectForKey:@"size"];
    return self;
}
 @end
@implementation BandwidthStatisticResultData
-(id) initWithValue:(NSNumber*) value
      maxValueTime:(NSNumber*)maxValueTime { 
     self.value = value;               
     self.maxValueTime = maxValueTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self value])
    {
        [result setValue:[self value] forKey:@"value"];
    }
    if([self maxValueTime])
    {
        [result setValue:[self maxValueTime] forKey:@"maxValueTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.value = [dictionary objectForKey:@"value"];
    self.maxValueTime = [dictionary objectForKey:@"maxValueTime"];
    return self;
}
 @end
@implementation RecordDetail
-(id) initWithFormat:(NSString*) format
      duration:(NSNumber*)duration { 
     self.format = format;               
     self.duration = duration;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self format])
    {
        [result setValue:[self format] forKey:@"format"];
    }
    if([self duration])
    {
        [result setValue:[self duration] forKey:@"duration"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.format = [dictionary objectForKey:@"format"];
    self.duration = [dictionary objectForKey:@"duration"];
    return self;
}
 @end
@implementation TranscodeDurationStatisticData
-(id) initWithDuration:(NSString*) duration { 
     self.duration = duration;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self duration])
    {
        [result setValue:[self duration] forKey:@"duration"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.duration = [dictionary objectForKey:@"duration"];
    return self;
}
 @end
@implementation PornCountStatisticData
-(id) initWithCount:(NSNumber*) count { 
     self.count = count;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self count])
    {
        [result setValue:[self count] forKey:@"count"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.count = [dictionary objectForKey:@"count"];
    return self;
}
 @end
@implementation TrafficStatisticResultData
-(id) initWithValue:(NSNumber*) value { 
     self.value = value;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self value])
    {
        [result setValue:[self value] forKey:@"value"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.value = [dictionary objectForKey:@"value"];
    return self;
}
 @end
@implementation File
-(id) initWithPublishDomain:(NSString*) publishDomain
      appName:(NSString*)appName
      streamName:(NSString*)streamName
      startTime:(NSString*)startTime
      endTime:(NSString*)endTime
      duration:(NSNumber*)duration
      height:(NSNumber*)height
      width:(NSNumber*)width
      ossBucket:(NSString*)ossBucket
      ossEndpoint:(NSString*)ossEndpoint
      ossObject:(NSString*)ossObject { 
     self.publishDomain = publishDomain;               
     self.appName = appName;               
     self.streamName = streamName;               
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.duration = duration;               
     self.height = height;               
     self.width = width;               
     self.ossBucket = ossBucket;               
     self.ossEndpoint = ossEndpoint;               
     self.ossObject = ossObject;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self duration])
    {
        [result setValue:[self duration] forKey:@"duration"];
    }
    if([self height])
    {
        [result setValue:[self height] forKey:@"height"];
    }
    if([self width])
    {
        [result setValue:[self width] forKey:@"width"];
    }
    if([self ossBucket])
    {
        [result setValue:[self ossBucket] forKey:@"ossBucket"];
    }
    if([self ossEndpoint])
    {
        [result setValue:[self ossEndpoint] forKey:@"ossEndpoint"];
    }
    if([self ossObject])
    {
        [result setValue:[self ossObject] forKey:@"ossObject"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    self.appName = [dictionary objectForKey:@"appName"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    self.duration = [dictionary objectForKey:@"duration"];
    self.height = [dictionary objectForKey:@"height"];
    self.width = [dictionary objectForKey:@"width"];
    self.ossBucket = [dictionary objectForKey:@"ossBucket"];
    self.ossEndpoint = [dictionary objectForKey:@"ossEndpoint"];
    self.ossObject = [dictionary objectForKey:@"ossObject"];
    return self;
}
 @end
@implementation LiveRecordConfig
-(id) initWithPublishDomain:(NSString*) publishDomain
      appName:(NSString*)appName
      streamName:(NSString*)streamName
      recordConfig:(NSString*)recordConfig { 
     self.publishDomain = publishDomain;               
     self.appName = appName;               
     self.streamName = streamName;               
     self.recordConfig = recordConfig;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self recordConfig])
    {
        [result setValue:[self recordConfig] forKey:@"recordConfig"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    self.appName = [dictionary objectForKey:@"appName"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.recordConfig = [dictionary objectForKey:@"recordConfig"];
    return self;
}
 @end
@implementation RecordTime
-(id) initWithStartTime:(NSString*) startTime
      endTime:(NSString*)endTime { 
     self.startTime = startTime;               
     self.endTime = endTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    return self;
}
 @end
@implementation RecordApp
-(id) initWithAppName:(NSString*) appName
      recordConfig:(NSString*)recordConfig { 
     self.appName = appName;               
     self.recordConfig = recordConfig;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self recordConfig])
    {
        [result setValue:[self recordConfig] forKey:@"recordConfig"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.appName = [dictionary objectForKey:@"appName"];
    self.recordConfig = [dictionary objectForKey:@"recordConfig"];
    return self;
}
 @end
@implementation RecordTemplate
-(id) initWithRecordPeriod:(NSNumber*) recordPeriod
      saveBucket:(NSString*)saveBucket
      saveEndpoint:(NSString*)saveEndpoint
      recordFileType:(NSString*)recordFileType
      template:(NSString*)template { 
     self.recordPeriod = recordPeriod;               
     self.saveBucket = saveBucket;               
     self.saveEndpoint = saveEndpoint;               
     self.recordFileType = recordFileType;               
     self.template = template;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self recordPeriod])
    {
        [result setValue:[self recordPeriod] forKey:@"recordPeriod"];
    }
    if([self saveBucket])
    {
        [result setValue:[self saveBucket] forKey:@"saveBucket"];
    }
    if([self saveEndpoint])
    {
        [result setValue:[self saveEndpoint] forKey:@"saveEndpoint"];
    }
    if([self recordFileType])
    {
        [result setValue:[self recordFileType] forKey:@"recordFileType"];
    }
    if([self template])
    {
        [result setValue:[self template] forKey:@"template"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.recordPeriod = [dictionary objectForKey:@"recordPeriod"];
    self.saveBucket = [dictionary objectForKey:@"saveBucket"];
    self.saveEndpoint = [dictionary objectForKey:@"saveEndpoint"];
    self.recordFileType = [dictionary objectForKey:@"recordFileType"];
    self.template = [dictionary objectForKey:@"template"];
    return self;
}
 @end
@implementation UpdateQualityDetectionTemplateRequestObject
-(id) initWithTemplate:(NSString*) template
      modules:(NSArray<NSString*>*)modules { 
     self.template = template;               
     self.modules = modules;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self template])
    {
        [result setValue:[self template] forKey:@"template"];
    }
    if([self modules])
    {
        [result setValue:[self modules] forKey:@"modules"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.template = [dictionary objectForKey:@"template"];
    self.modules = [dictionary objectForKey:@"modules"];
    return self;
}
 @end
@implementation CreateQualityDetectionTemplateRequestObject
-(id) initWithTemplate:(NSString*) template
      modules:(NSArray<NSString*>*)modules { 
     self.template = template;               
     self.modules = modules;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self template])
    {
        [result setValue:[self template] forKey:@"template"];
    }
    if([self modules])
    {
        [result setValue:[self modules] forKey:@"modules"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.template = [dictionary objectForKey:@"template"];
    self.modules = [dictionary objectForKey:@"modules"];
    return self;
}
 @end
@implementation Snapshot
-(id) initWithImgId:(NSString*) imgId
      format:(NSString*)format
      width:(NSNumber*)width
      height:(NSNumber*)height
      snapshotTime:(NSString*)snapshotTime
      size:(NSNumber*)size
      imgUrl:(NSString*)imgUrl { 
     self.imgId = imgId;               
     self.format = format;               
     self.width = width;               
     self.height = height;               
     self.snapshotTime = snapshotTime;               
     self.size = size;               
     self.imgUrl = imgUrl;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self imgId])
    {
        [result setValue:[self imgId] forKey:@"imgId"];
    }
    if([self format])
    {
        [result setValue:[self format] forKey:@"format"];
    }
    if([self width])
    {
        [result setValue:[self width] forKey:@"width"];
    }
    if([self height])
    {
        [result setValue:[self height] forKey:@"height"];
    }
    if([self snapshotTime])
    {
        [result setValue:[self snapshotTime] forKey:@"snapshotTime"];
    }
    if([self size])
    {
        [result setValue:[self size] forKey:@"size"];
    }
    if([self imgUrl])
    {
        [result setValue:[self imgUrl] forKey:@"imgUrl"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.imgId = [dictionary objectForKey:@"imgId"];
    self.format = [dictionary objectForKey:@"format"];
    self.width = [dictionary objectForKey:@"width"];
    self.height = [dictionary objectForKey:@"height"];
    self.snapshotTime = [dictionary objectForKey:@"snapshotTime"];
    self.size = [dictionary objectForKey:@"size"];
    self.imgUrl = [dictionary objectForKey:@"imgUrl"];
    return self;
}
 @end
@implementation PublishOnlineStreamResultData
-(id) initWithAppName:(NSString*) appName
      streamName:(NSString*)streamName
      clientIp:(NSString*)clientIp
      serverIp:(NSString*)serverIp
      frameRate:(NSNumber*)frameRate
      frameLossRate:(NSNumber*)frameLossRate
      lastActive:(NSNumber*)lastActive
      realFps:(NSNumber*)realFps
      uploadSpeed:(NSNumber*)uploadSpeed
      videoCodec:(NSNumber*)videoCodec
      videoDataRate:(NSNumber*)videoDataRate
      audioCodec:(NSNumber*)audioCodec { 
     self.appName = appName;               
     self.streamName = streamName;               
     self.clientIp = clientIp;               
     self.serverIp = serverIp;               
     self.frameRate = frameRate;               
     self.frameLossRate = frameLossRate;               
     self.lastActive = lastActive;               
     self.realFps = realFps;               
     self.uploadSpeed = uploadSpeed;               
     self.videoCodec = videoCodec;               
     self.videoDataRate = videoDataRate;               
     self.audioCodec = audioCodec;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self clientIp])
    {
        [result setValue:[self clientIp] forKey:@"clientIp"];
    }
    if([self serverIp])
    {
        [result setValue:[self serverIp] forKey:@"serverIp"];
    }
    if([self frameRate])
    {
        [result setValue:[self frameRate] forKey:@"frameRate"];
    }
    if([self frameLossRate])
    {
        [result setValue:[self frameLossRate] forKey:@"frameLossRate"];
    }
    if([self lastActive])
    {
        [result setValue:[self lastActive] forKey:@"lastActive"];
    }
    if([self realFps])
    {
        [result setValue:[self realFps] forKey:@"realFps"];
    }
    if([self uploadSpeed])
    {
        [result setValue:[self uploadSpeed] forKey:@"uploadSpeed"];
    }
    if([self videoCodec])
    {
        [result setValue:[self videoCodec] forKey:@"videoCodec"];
    }
    if([self videoDataRate])
    {
        [result setValue:[self videoDataRate] forKey:@"videoDataRate"];
    }
    if([self audioCodec])
    {
        [result setValue:[self audioCodec] forKey:@"audioCodec"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.appName = [dictionary objectForKey:@"appName"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.clientIp = [dictionary objectForKey:@"clientIp"];
    self.serverIp = [dictionary objectForKey:@"serverIp"];
    self.frameRate = [dictionary objectForKey:@"frameRate"];
    self.frameLossRate = [dictionary objectForKey:@"frameLossRate"];
    self.lastActive = [dictionary objectForKey:@"lastActive"];
    self.realFps = [dictionary objectForKey:@"realFps"];
    self.uploadSpeed = [dictionary objectForKey:@"uploadSpeed"];
    self.videoCodec = [dictionary objectForKey:@"videoCodec"];
    self.videoDataRate = [dictionary objectForKey:@"videoDataRate"];
    self.audioCodec = [dictionary objectForKey:@"audioCodec"];
    return self;
}
 @end
@implementation LiveStreamPlayerRankingResult
-(id) initWithStartTime:(NSString*) startTime
      endTime:(NSString*)endTime
      ranking:(NSNumber*)ranking
      streamName:(NSString*)streamName
      playerCount:(NSNumber*)playerCount { 
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.ranking = ranking;               
     self.streamName = streamName;               
     self.playerCount = playerCount;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self ranking])
    {
        [result setValue:[self ranking] forKey:@"ranking"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self playerCount])
    {
        [result setValue:[self playerCount] forKey:@"playerCount"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    self.ranking = [dictionary objectForKey:@"ranking"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.playerCount = [dictionary objectForKey:@"playerCount"];
    return self;
}
 @end
@implementation PublishStreamInfoData
-(id) initWithStreamName:(NSString*) streamName
      fps:(NSString*)fps
      bitrate:(NSString*)bitrate
      pushEdgeNodeIps:(NSArray<NSString*>*)pushEdgeNodeIps
      anchorIps:(NSArray<NSString*>*)anchorIps
      flvBandWidth:(NSNumber*)flvBandWidth
      flvPlayerCount:(NSNumber*)flvPlayerCount
      hlsBandWidth:(NSNumber*)hlsBandWidth
      hlsPlayerCount:(NSNumber*)hlsPlayerCount { 
     self.streamName = streamName;               
     self.fps = fps;               
     self.bitrate = bitrate;               
     self.pushEdgeNodeIps = pushEdgeNodeIps;               
     self.anchorIps = anchorIps;               
     self.flvBandWidth = flvBandWidth;               
     self.flvPlayerCount = flvPlayerCount;               
     self.hlsBandWidth = hlsBandWidth;               
     self.hlsPlayerCount = hlsPlayerCount;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self fps])
    {
        [result setValue:[self fps] forKey:@"fps"];
    }
    if([self bitrate])
    {
        [result setValue:[self bitrate] forKey:@"bitrate"];
    }
    if([self pushEdgeNodeIps])
    {
        [result setValue:[self pushEdgeNodeIps] forKey:@"pushEdgeNodeIps"];
    }
    if([self anchorIps])
    {
        [result setValue:[self anchorIps] forKey:@"anchorIps"];
    }
    if([self flvBandWidth])
    {
        [result setValue:[self flvBandWidth] forKey:@"flvBandWidth"];
    }
    if([self flvPlayerCount])
    {
        [result setValue:[self flvPlayerCount] forKey:@"flvPlayerCount"];
    }
    if([self hlsBandWidth])
    {
        [result setValue:[self hlsBandWidth] forKey:@"hlsBandWidth"];
    }
    if([self hlsPlayerCount])
    {
        [result setValue:[self hlsPlayerCount] forKey:@"hlsPlayerCount"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.fps = [dictionary objectForKey:@"fps"];
    self.bitrate = [dictionary objectForKey:@"bitrate"];
    self.pushEdgeNodeIps = [dictionary objectForKey:@"pushEdgeNodeIps"];
    self.anchorIps = [dictionary objectForKey:@"anchorIps"];
    self.flvBandWidth = [dictionary objectForKey:@"flvBandWidth"];
    self.flvPlayerCount = [dictionary objectForKey:@"flvPlayerCount"];
    self.hlsBandWidth = [dictionary objectForKey:@"hlsBandWidth"];
    self.hlsPlayerCount = [dictionary objectForKey:@"hlsPlayerCount"];
    return self;
}
 @end
@implementation DomainsLogResultData
-(id) initWithFileName:(NSString*) fileName
      logUrl:(NSString*)logUrl
      md5:(NSString*)md5
      size:(NSNumber*)size
      startTime:(NSString*)startTime
      endTime:(NSString*)endTime { 
     self.fileName = fileName;               
     self.logUrl = logUrl;               
     self.md5 = md5;               
     self.size = size;               
     self.startTime = startTime;               
     self.endTime = endTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self fileName])
    {
        [result setValue:[self fileName] forKey:@"fileName"];
    }
    if([self logUrl])
    {
        [result setValue:[self logUrl] forKey:@"logUrl"];
    }
    if([self md5])
    {
        [result setValue:[self md5] forKey:@"md5"];
    }
    if([self size])
    {
        [result setValue:[self size] forKey:@"size"];
    }
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.fileName = [dictionary objectForKey:@"fileName"];
    self.logUrl = [dictionary objectForKey:@"logUrl"];
    self.md5 = [dictionary objectForKey:@"md5"];
    self.size = [dictionary objectForKey:@"size"];
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    return self;
}
 @end
@implementation RankingUrlResultRankData
-(id) initWithUv:(NSNumber*) uv
      bandwidth:(NSNumber*)bandwidth
      pv:(NSNumber*)pv
      flow:(NSNumber*)flow { 
     self.uv = uv;               
     self.bandwidth = bandwidth;               
     self.pv = pv;               
     self.flow = flow;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self uv])
    {
        [result setValue:[self uv] forKey:@"uv"];
    }
    if([self bandwidth])
    {
        [result setValue:[self bandwidth] forKey:@"bandwidth"];
    }
    if([self pv])
    {
        [result setValue:[self pv] forKey:@"pv"];
    }
    if([self flow])
    {
        [result setValue:[self flow] forKey:@"flow"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.uv = [dictionary objectForKey:@"uv"];
    self.bandwidth = [dictionary objectForKey:@"bandwidth"];
    self.pv = [dictionary objectForKey:@"pv"];
    self.flow = [dictionary objectForKey:@"flow"];
    return self;
}
 @end
@implementation LiveStreamUserNumResultData
-(id) initWithCount:(NSNumber*) count { 
     self.count = count;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self count])
    {
        [result setValue:[self count] forKey:@"count"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.count = [dictionary objectForKey:@"count"];
    return self;
}
 @end
@implementation LiveTranscodeStreamResult
-(id) initWithStreamName:(NSString*) streamName
      status:(NSString*)status { 
     self.streamName = streamName;               
     self.status = status;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self status])
    {
        [result setValue:[self status] forKey:@"status"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.status = [dictionary objectForKey:@"status"];
    return self;
}
 @end
@implementation StreamInfo
-(id) initWithPublishDomain:(NSString*) publishDomain
      appName:(NSString*)appName
      streamName:(NSString*)streamName
      status:(NSString*)status { 
     self.publishDomain = publishDomain;               
     self.appName = appName;               
     self.streamName = streamName;               
     self.status = status;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self status])
    {
        [result setValue:[self status] forKey:@"status"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    self.appName = [dictionary objectForKey:@"appName"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.status = [dictionary objectForKey:@"status"];
    return self;
}
 @end
@implementation OnlineStreamInfo
-(id) initWithPublishDomain:(NSString*) publishDomain
      appName:(NSString*)appName
      streamName:(NSString*)streamName
      publishTime:(NSString*)publishTime
      publishUrl:(NSString*)publishUrl { 
     self.publishDomain = publishDomain;               
     self.appName = appName;               
     self.streamName = streamName;               
     self.publishTime = publishTime;               
     self.publishUrl = publishUrl;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self publishTime])
    {
        [result setValue:[self publishTime] forKey:@"publishTime"];
    }
    if([self publishUrl])
    {
        [result setValue:[self publishUrl] forKey:@"publishUrl"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    self.appName = [dictionary objectForKey:@"appName"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.publishTime = [dictionary objectForKey:@"publishTime"];
    self.publishUrl = [dictionary objectForKey:@"publishUrl"];
    return self;
}
 @end
@implementation LiveStreamPublishInfo
-(id) initWithPublishDomain:(NSString*) publishDomain
      appName:(NSString*)appName
      streamName:(NSString*)streamName
      publishUpTime:(NSString*)publishUpTime
      publishDownTime:(NSString*)publishDownTime { 
     self.publishDomain = publishDomain;               
     self.appName = appName;               
     self.streamName = streamName;               
     self.publishUpTime = publishUpTime;               
     self.publishDownTime = publishDownTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self publishUpTime])
    {
        [result setValue:[self publishUpTime] forKey:@"publishUpTime"];
    }
    if([self publishDownTime])
    {
        [result setValue:[self publishDownTime] forKey:@"publishDownTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    self.appName = [dictionary objectForKey:@"appName"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.publishUpTime = [dictionary objectForKey:@"publishUpTime"];
    self.publishDownTime = [dictionary objectForKey:@"publishDownTime"];
    return self;
}
 @end
@implementation ManageQueryStreamInfo
-(id) initWithPublishDomain:(NSString*) publishDomain
      appName:(NSString*)appName
      streamName:(NSString*)streamName
      publishStartTime:(NSString*)publishStartTime
      publishEndTime:(NSString*)publishEndTime
      publishUrl:(NSString*)publishUrl
      status:(NSString*)status { 
     self.publishDomain = publishDomain;               
     self.appName = appName;               
     self.streamName = streamName;               
     self.publishStartTime = publishStartTime;               
     self.publishEndTime = publishEndTime;               
     self.publishUrl = publishUrl;               
     self.status = status;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self publishStartTime])
    {
        [result setValue:[self publishStartTime] forKey:@"publishStartTime"];
    }
    if([self publishEndTime])
    {
        [result setValue:[self publishEndTime] forKey:@"publishEndTime"];
    }
    if([self publishUrl])
    {
        [result setValue:[self publishUrl] forKey:@"publishUrl"];
    }
    if([self status])
    {
        [result setValue:[self status] forKey:@"status"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    self.appName = [dictionary objectForKey:@"appName"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.publishStartTime = [dictionary objectForKey:@"publishStartTime"];
    self.publishEndTime = [dictionary objectForKey:@"publishEndTime"];
    self.publishUrl = [dictionary objectForKey:@"publishUrl"];
    self.status = [dictionary objectForKey:@"status"];
    return self;
}
 @end
@implementation NotifyInfo
-(id) initWithPublishDomain:(NSString*) publishDomain
      notifyUrl:(NSString*)notifyUrl { 
     self.publishDomain = publishDomain;               
     self.notifyUrl = notifyUrl;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    if([self notifyUrl])
    {
        [result setValue:[self notifyUrl] forKey:@"notifyUrl"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    self.notifyUrl = [dictionary objectForKey:@"notifyUrl"];
    return self;
}
 @end
@implementation SnapshotTemplate
-(id) initWithFormat:(NSString*) format
      width:(NSNumber*)width
      height:(NSNumber*)height
      fillType:(NSNumber*)fillType
      snapshotInterval:(NSNumber*)snapshotInterval
      saveMode:(NSNumber*)saveMode
      saveBucket:(NSString*)saveBucket
      saveEndpoint:(NSString*)saveEndpoint
      template:(NSString*)template { 
     self.format = format;               
     self.width = width;               
     self.height = height;               
     self.fillType = fillType;               
     self.snapshotInterval = snapshotInterval;               
     self.saveMode = saveMode;               
     self.saveBucket = saveBucket;               
     self.saveEndpoint = saveEndpoint;               
     self.template = template;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self format])
    {
        [result setValue:[self format] forKey:@"format"];
    }
    if([self width])
    {
        [result setValue:[self width] forKey:@"width"];
    }
    if([self height])
    {
        [result setValue:[self height] forKey:@"height"];
    }
    if([self fillType])
    {
        [result setValue:[self fillType] forKey:@"fillType"];
    }
    if([self snapshotInterval])
    {
        [result setValue:[self snapshotInterval] forKey:@"snapshotInterval"];
    }
    if([self saveMode])
    {
        [result setValue:[self saveMode] forKey:@"saveMode"];
    }
    if([self saveBucket])
    {
        [result setValue:[self saveBucket] forKey:@"saveBucket"];
    }
    if([self saveEndpoint])
    {
        [result setValue:[self saveEndpoint] forKey:@"saveEndpoint"];
    }
    if([self template])
    {
        [result setValue:[self template] forKey:@"template"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.format = [dictionary objectForKey:@"format"];
    self.width = [dictionary objectForKey:@"width"];
    self.height = [dictionary objectForKey:@"height"];
    self.fillType = [dictionary objectForKey:@"fillType"];
    self.snapshotInterval = [dictionary objectForKey:@"snapshotInterval"];
    self.saveMode = [dictionary objectForKey:@"saveMode"];
    self.saveBucket = [dictionary objectForKey:@"saveBucket"];
    self.saveEndpoint = [dictionary objectForKey:@"saveEndpoint"];
    self.template = [dictionary objectForKey:@"template"];
    return self;
}
 @end
@implementation SnapshotConfig
-(id) initWithPublishDomain:(NSString*) publishDomain
      appName:(NSString*)appName
      streamName:(NSString*)streamName
      snapshotConfigValue:(NSArray<NSString*>*)snapshotConfigValue { 
     self.publishDomain = publishDomain;               
     self.appName = appName;               
     self.streamName = streamName;               
     self.snapshotConfigValue = snapshotConfigValue;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self snapshotConfigValue])
    {
        [result setValue:[self snapshotConfigValue] forKey:@"snapshotConfig"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    self.appName = [dictionary objectForKey:@"appName"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.snapshotConfigValue = [dictionary objectForKey:@"snapshotConfig"];
    return self;
}
 @end
@implementation App
-(id) initWithAppName:(NSString*) appName
      appStatus:(NSString*)appStatus
      createTime:(NSString*)createTime
      updateTime:(NSString*)updateTime { 
     self.appName = appName;               
     self.appStatus = appStatus;               
     self.createTime = createTime;               
     self.updateTime = updateTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self appStatus])
    {
        [result setValue:[self appStatus] forKey:@"appStatus"];
    }
    if([self createTime])
    {
        [result setValue:[self createTime] forKey:@"createTime"];
    }
    if([self updateTime])
    {
        [result setValue:[self updateTime] forKey:@"updateTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.appName = [dictionary objectForKey:@"appName"];
    self.appStatus = [dictionary objectForKey:@"appStatus"];
    self.createTime = [dictionary objectForKey:@"createTime"];
    self.updateTime = [dictionary objectForKey:@"updateTime"];
    return self;
}
 @end
@implementation PublishDomain
-(id) initWithPublishDomainValue:(NSString*) publishDomainValue
      publishDomainCname:(NSString*)publishDomainCname
      domainStatus:(NSString*)domainStatus
      createTime:(NSString*)createTime
      updateTime:(NSString*)updateTime { 
     self.publishDomainValue = publishDomainValue;               
     self.publishDomainCname = publishDomainCname;               
     self.domainStatus = domainStatus;               
     self.createTime = createTime;               
     self.updateTime = updateTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomainValue])
    {
        [result setValue:[self publishDomainValue] forKey:@"publishDomain"];
    }
    if([self publishDomainCname])
    {
        [result setValue:[self publishDomainCname] forKey:@"publishDomainCname"];
    }
    if([self domainStatus])
    {
        [result setValue:[self domainStatus] forKey:@"domainStatus"];
    }
    if([self createTime])
    {
        [result setValue:[self createTime] forKey:@"createTime"];
    }
    if([self updateTime])
    {
        [result setValue:[self updateTime] forKey:@"updateTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomainValue = [dictionary objectForKey:@"publishDomain"];
    self.publishDomainCname = [dictionary objectForKey:@"publishDomainCname"];
    self.domainStatus = [dictionary objectForKey:@"domainStatus"];
    self.createTime = [dictionary objectForKey:@"createTime"];
    self.updateTime = [dictionary objectForKey:@"updateTime"];
    return self;
}
 @end
@implementation PlayDomain
-(id) initWithPlayDomainValue:(NSString*) playDomainValue
      playDomainCname:(NSString*)playDomainCname
      domainStatus:(NSString*)domainStatus
      playType:(NSString*)playType
      createTime:(NSString*)createTime
      updateTime:(NSString*)updateTime { 
     self.playDomainValue = playDomainValue;               
     self.playDomainCname = playDomainCname;               
     self.domainStatus = domainStatus;               
     self.playType = playType;               
     self.createTime = createTime;               
     self.updateTime = updateTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self playDomainValue])
    {
        [result setValue:[self playDomainValue] forKey:@"playDomain"];
    }
    if([self playDomainCname])
    {
        [result setValue:[self playDomainCname] forKey:@"playDomainCname"];
    }
    if([self domainStatus])
    {
        [result setValue:[self domainStatus] forKey:@"domainStatus"];
    }
    if([self playType])
    {
        [result setValue:[self playType] forKey:@"playType"];
    }
    if([self createTime])
    {
        [result setValue:[self createTime] forKey:@"createTime"];
    }
    if([self updateTime])
    {
        [result setValue:[self updateTime] forKey:@"updateTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.playDomainValue = [dictionary objectForKey:@"playDomain"];
    self.playDomainCname = [dictionary objectForKey:@"playDomainCname"];
    self.domainStatus = [dictionary objectForKey:@"domainStatus"];
    self.playType = [dictionary objectForKey:@"playType"];
    self.createTime = [dictionary objectForKey:@"createTime"];
    self.updateTime = [dictionary objectForKey:@"updateTime"];
    return self;
}
 @end
@implementation P2pPlayDomain
-(id) initWithPlayDomain:(NSString*) playDomain
      p2pStatus:(NSString*)p2pStatus
      playType:(NSString*)playType { 
     self.playDomain = playDomain;               
     self.p2pStatus = p2pStatus;               
     self.playType = playType;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self playDomain])
    {
        [result setValue:[self playDomain] forKey:@"playDomain"];
    }
    if([self p2pStatus])
    {
        [result setValue:[self p2pStatus] forKey:@"p2pStatus"];
    }
    if([self playType])
    {
        [result setValue:[self playType] forKey:@"playType"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.playDomain = [dictionary objectForKey:@"playDomain"];
    self.p2pStatus = [dictionary objectForKey:@"p2pStatus"];
    self.playType = [dictionary objectForKey:@"playType"];
    return self;
}
 @end
@implementation P2pRequestBody
-(id) initWithPlayDomain:(NSString*) playDomain { 
     self.playDomain = playDomain;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self playDomain])
    {
        [result setValue:[self playDomain] forKey:@"playDomain"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.playDomain = [dictionary objectForKey:@"playDomain"];
    return self;
}
 @end
@implementation P2pPublishDomain
-(id) initWithPublishDomain:(NSString*) publishDomain { 
     self.publishDomain = publishDomain;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    return self;
}
 @end
@implementation RecordFile
-(id) initWithFileId:(NSString*) fileId
      format:(NSString*)format
      width:(NSNumber*)width
      height:(NSNumber*)height
      startTime:(NSString*)startTime
      endTime:(NSString*)endTime
      duration:(NSNumber*)duration
      size:(NSNumber*)size
      bitrate:(NSNumber*)bitrate
      fps:(NSNumber*)fps
      fileUrl:(NSString*)fileUrl
      createTime:(NSString*)createTime { 
     self.fileId = fileId;               
     self.format = format;               
     self.width = width;               
     self.height = height;               
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.duration = duration;               
     self.size = size;               
     self.bitrate = bitrate;               
     self.fps = fps;               
     self.fileUrl = fileUrl;               
     self.createTime = createTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self fileId])
    {
        [result setValue:[self fileId] forKey:@"fileId"];
    }
    if([self format])
    {
        [result setValue:[self format] forKey:@"format"];
    }
    if([self width])
    {
        [result setValue:[self width] forKey:@"width"];
    }
    if([self height])
    {
        [result setValue:[self height] forKey:@"height"];
    }
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self duration])
    {
        [result setValue:[self duration] forKey:@"duration"];
    }
    if([self size])
    {
        [result setValue:[self size] forKey:@"size"];
    }
    if([self bitrate])
    {
        [result setValue:[self bitrate] forKey:@"bitrate"];
    }
    if([self fps])
    {
        [result setValue:[self fps] forKey:@"fps"];
    }
    if([self fileUrl])
    {
        [result setValue:[self fileUrl] forKey:@"fileUrl"];
    }
    if([self createTime])
    {
        [result setValue:[self createTime] forKey:@"createTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.fileId = [dictionary objectForKey:@"fileId"];
    self.format = [dictionary objectForKey:@"format"];
    self.width = [dictionary objectForKey:@"width"];
    self.height = [dictionary objectForKey:@"height"];
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    self.duration = [dictionary objectForKey:@"duration"];
    self.size = [dictionary objectForKey:@"size"];
    self.bitrate = [dictionary objectForKey:@"bitrate"];
    self.fps = [dictionary objectForKey:@"fps"];
    self.fileUrl = [dictionary objectForKey:@"fileUrl"];
    self.createTime = [dictionary objectForKey:@"createTime"];
    return self;
}
 @end
@implementation LiveStatisticGroupByStreamResultData
-(id) initWithStreamName:(NSString*) streamName
      playerCount:(NSNumber*)playerCount
      bandwidth:(NSNumber*)bandwidth
      maxBandwidthtime:(NSNumber*)maxBandwidthtime
      flow:(NSNumber*)flow { 
     self.streamName = streamName;               
     self.playerCount = playerCount;               
     self.bandwidth = bandwidth;               
     self.maxBandwidthtime = maxBandwidthtime;               
     self.flow = flow;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self playerCount])
    {
        [result setValue:[self playerCount] forKey:@"playerCount"];
    }
    if([self bandwidth])
    {
        [result setValue:[self bandwidth] forKey:@"bandwidth"];
    }
    if([self maxBandwidthtime])
    {
        [result setValue:[self maxBandwidthtime] forKey:@"maxBandwidthtime"];
    }
    if([self flow])
    {
        [result setValue:[self flow] forKey:@"flow"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.playerCount = [dictionary objectForKey:@"playerCount"];
    self.bandwidth = [dictionary objectForKey:@"bandwidth"];
    self.maxBandwidthtime = [dictionary objectForKey:@"maxBandwidthtime"];
    self.flow = [dictionary objectForKey:@"flow"];
    return self;
}
 @end
@implementation LiveStatisticGroupByAreaResultData
-(id) initWithArea:(NSString*) area
      playerCount:(NSNumber*)playerCount
      bandwidth:(NSNumber*)bandwidth
      maxBandwidthtime:(NSNumber*)maxBandwidthtime
      flow:(NSNumber*)flow { 
     self.area = area;               
     self.playerCount = playerCount;               
     self.bandwidth = bandwidth;               
     self.maxBandwidthtime = maxBandwidthtime;               
     self.flow = flow;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self area])
    {
        [result setValue:[self area] forKey:@"area"];
    }
    if([self playerCount])
    {
        [result setValue:[self playerCount] forKey:@"playerCount"];
    }
    if([self bandwidth])
    {
        [result setValue:[self bandwidth] forKey:@"bandwidth"];
    }
    if([self maxBandwidthtime])
    {
        [result setValue:[self maxBandwidthtime] forKey:@"maxBandwidthtime"];
    }
    if([self flow])
    {
        [result setValue:[self flow] forKey:@"flow"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.area = [dictionary objectForKey:@"area"];
    self.playerCount = [dictionary objectForKey:@"playerCount"];
    self.bandwidth = [dictionary objectForKey:@"bandwidth"];
    self.maxBandwidthtime = [dictionary objectForKey:@"maxBandwidthtime"];
    self.flow = [dictionary objectForKey:@"flow"];
    return self;
}
 @end
@implementation LiveStatisticGroupByAreaIspResultIspData
-(id) initWithIsp:(NSString*) isp
      playerCount:(NSNumber*)playerCount
      bandwidth:(NSNumber*)bandwidth
      maxBandwidthtime:(NSNumber*)maxBandwidthtime
      flow:(NSNumber*)flow { 
     self.isp = isp;               
     self.playerCount = playerCount;               
     self.bandwidth = bandwidth;               
     self.maxBandwidthtime = maxBandwidthtime;               
     self.flow = flow;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self isp])
    {
        [result setValue:[self isp] forKey:@"isp"];
    }
    if([self playerCount])
    {
        [result setValue:[self playerCount] forKey:@"playerCount"];
    }
    if([self bandwidth])
    {
        [result setValue:[self bandwidth] forKey:@"bandwidth"];
    }
    if([self maxBandwidthtime])
    {
        [result setValue:[self maxBandwidthtime] forKey:@"maxBandwidthtime"];
    }
    if([self flow])
    {
        [result setValue:[self flow] forKey:@"flow"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.isp = [dictionary objectForKey:@"isp"];
    self.playerCount = [dictionary objectForKey:@"playerCount"];
    self.bandwidth = [dictionary objectForKey:@"bandwidth"];
    self.maxBandwidthtime = [dictionary objectForKey:@"maxBandwidthtime"];
    self.flow = [dictionary objectForKey:@"flow"];
    return self;
}
 @end
@implementation TemplateConfig
-(id) initWithPublishDomain:(NSString*) publishDomain
      appName:(NSString*)appName
      streamName:(NSString*)streamName
      transcodeConfig:(NSArray<NSString*>*)transcodeConfig { 
     self.publishDomain = publishDomain;               
     self.appName = appName;               
     self.streamName = streamName;               
     self.transcodeConfig = transcodeConfig;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self transcodeConfig])
    {
        [result setValue:[self transcodeConfig] forKey:@"transcodeConfig"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    self.appName = [dictionary objectForKey:@"appName"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.transcodeConfig = [dictionary objectForKey:@"transcodeConfig"];
    return self;
}
 @end
@implementation TranscodeInfo
-(id) initWithVideoCodec:(NSString*) videoCodec
      videoCodeRate:(NSNumber*)videoCodeRate
      videoFrameRate:(NSString*)videoFrameRate
      width:(NSNumber*)width
      height:(NSNumber*)height
      template:(NSString*)template
      templateName:(NSString*)templateName
      audioCodec:(NSString*)audioCodec
      audioFormat:(NSString*)audioFormat
      audioSampleRate:(NSNumber*)audioSampleRate
      audioChannel:(NSNumber*)audioChannel
      audioCodeRate:(NSNumber*)audioCodeRate
      jdchd:(NSString*)jdchd
      audioComfort:(NSString*)audioComfort { 
     self.videoCodec = videoCodec;               
     self.videoCodeRate = videoCodeRate;               
     self.videoFrameRate = videoFrameRate;               
     self.width = width;               
     self.height = height;               
     self.template = template;               
     self.templateName = templateName;               
     self.audioCodec = audioCodec;               
     self.audioFormat = audioFormat;               
     self.audioSampleRate = audioSampleRate;               
     self.audioChannel = audioChannel;               
     self.audioCodeRate = audioCodeRate;               
     self.jdchd = jdchd;               
     self.audioComfort = audioComfort;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self videoCodec])
    {
        [result setValue:[self videoCodec] forKey:@"videoCodec"];
    }
    if([self videoCodeRate])
    {
        [result setValue:[self videoCodeRate] forKey:@"videoCodeRate"];
    }
    if([self videoFrameRate])
    {
        [result setValue:[self videoFrameRate] forKey:@"videoFrameRate"];
    }
    if([self width])
    {
        [result setValue:[self width] forKey:@"width"];
    }
    if([self height])
    {
        [result setValue:[self height] forKey:@"height"];
    }
    if([self template])
    {
        [result setValue:[self template] forKey:@"template"];
    }
    if([self templateName])
    {
        [result setValue:[self templateName] forKey:@"templateName"];
    }
    if([self audioCodec])
    {
        [result setValue:[self audioCodec] forKey:@"audioCodec"];
    }
    if([self audioFormat])
    {
        [result setValue:[self audioFormat] forKey:@"audioFormat"];
    }
    if([self audioSampleRate])
    {
        [result setValue:[self audioSampleRate] forKey:@"audioSampleRate"];
    }
    if([self audioChannel])
    {
        [result setValue:[self audioChannel] forKey:@"audioChannel"];
    }
    if([self audioCodeRate])
    {
        [result setValue:[self audioCodeRate] forKey:@"audioCodeRate"];
    }
    if([self jdchd])
    {
        [result setValue:[self jdchd] forKey:@"jdchd"];
    }
    if([self audioComfort])
    {
        [result setValue:[self audioComfort] forKey:@"audioComfort"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.videoCodec = [dictionary objectForKey:@"videoCodec"];
    self.videoCodeRate = [dictionary objectForKey:@"videoCodeRate"];
    self.videoFrameRate = [dictionary objectForKey:@"videoFrameRate"];
    self.width = [dictionary objectForKey:@"width"];
    self.height = [dictionary objectForKey:@"height"];
    self.template = [dictionary objectForKey:@"template"];
    self.templateName = [dictionary objectForKey:@"templateName"];
    self.audioCodec = [dictionary objectForKey:@"audioCodec"];
    self.audioFormat = [dictionary objectForKey:@"audioFormat"];
    self.audioSampleRate = [dictionary objectForKey:@"audioSampleRate"];
    self.audioChannel = [dictionary objectForKey:@"audioChannel"];
    self.audioCodeRate = [dictionary objectForKey:@"audioCodeRate"];
    self.jdchd = [dictionary objectForKey:@"jdchd"];
    self.audioComfort = [dictionary objectForKey:@"audioComfort"];
    return self;
}
 @end
@implementation RestartConfig
-(id) initWithPublishDomains:(NSArray<RestartPublishDomain*>*) publishDomains
      playDomains:(NSArray<RestartPlayDomain*>*)playDomains { 
     self.publishDomains = publishDomains;               
     self.playDomains = playDomains;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomains])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self publishDomains] count]; i++) {
            RestartPublishDomain* item = [[self publishDomains] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"publishDomains"];
    }
    if([self playDomains])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self playDomains] count]; i++) {
            RestartPlayDomain* item = [[self playDomains] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"playDomains"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* publishDomainsArray = [dictionary objectForKey:@"publishDomains"];
    if(publishDomainsArray&&![publishDomainsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [publishDomainsArray count];i++)
        {
            RestartPublishDomain* item = [[RestartPublishDomain alloc]initWithDic:[publishDomainsArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.publishDomains = propertyArray;
    }
    NSArray* playDomainsArray = [dictionary objectForKey:@"playDomains"];
    if(playDomainsArray&&![playDomainsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [playDomainsArray count];i++)
        {
            RestartPlayDomain* item = [[RestartPlayDomain alloc]initWithDic:[playDomainsArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.playDomains = propertyArray;
    }
    return self;
}
 @end
@implementation TimeshiftConfig
-(id) initWithPublishDomains:(NSArray<TimeshiftPublishDomain*>*) publishDomains
      playDomains:(NSArray<TimeshiftPlayDomain*>*)playDomains { 
     self.publishDomains = publishDomains;               
     self.playDomains = playDomains;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomains])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self publishDomains] count]; i++) {
            TimeshiftPublishDomain* item = [[self publishDomains] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"publishDomains"];
    }
    if([self playDomains])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self playDomains] count]; i++) {
            TimeshiftPlayDomain* item = [[self playDomains] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"playDomains"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* publishDomainsArray = [dictionary objectForKey:@"publishDomains"];
    if(publishDomainsArray&&![publishDomainsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [publishDomainsArray count];i++)
        {
            TimeshiftPublishDomain* item = [[TimeshiftPublishDomain alloc]initWithDic:[publishDomainsArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.publishDomains = propertyArray;
    }
    NSArray* playDomainsArray = [dictionary objectForKey:@"playDomains"];
    if(playDomainsArray&&![playDomainsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [playDomainsArray count];i++)
        {
            TimeshiftPlayDomain* item = [[TimeshiftPlayDomain alloc]initWithDic:[playDomainsArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.playDomains = propertyArray;
    }
    return self;
}
 @end
@implementation FileStorageStatisticResult
-(id) initWithStartTime:(NSString*) startTime
      endTime:(NSString*)endTime
      data:(FileStorageStatisticData*)data { 
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.data = data;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self data])
    {
        [result setValue:[[self data] dictionary]forKey:@"data"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    self.data = [[FileStorageStatisticData alloc]initWithDic:[dictionary objectForKey:@"data"]];
    return self;
}
 @end
@implementation PornCountStatisticResult
-(id) initWithStartTime:(NSString*) startTime
      endTime:(NSString*)endTime
      data:(PornCountStatisticData*)data { 
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.data = data;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self data])
    {
        [result setValue:[[self data] dictionary]forKey:@"data"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    self.data = [[PornCountStatisticData alloc]initWithDic:[dictionary objectForKey:@"data"]];
    return self;
}
 @end
@implementation BandwidthStatisticResult
-(id) initWithStartTime:(NSString*) startTime
      endTime:(NSString*)endTime
      data:(BandwidthStatisticResultData*)data { 
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.data = data;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self data])
    {
        [result setValue:[[self data] dictionary]forKey:@"data"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    self.data = [[BandwidthStatisticResultData alloc]initWithDic:[dictionary objectForKey:@"data"]];
    return self;
}
 @end
@implementation TranscodeDurationStatisticResult
-(id) initWithStartTime:(NSString*) startTime
      endTime:(NSString*)endTime
      data:(TranscodeDurationStatisticData*)data { 
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.data = data;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self data])
    {
        [result setValue:[[self data] dictionary]forKey:@"data"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    self.data = [[TranscodeDurationStatisticData alloc]initWithDic:[dictionary objectForKey:@"data"]];
    return self;
}
 @end
@implementation PlayDataStatisticResult
-(id) initWithStartTime:(NSString*) startTime
      endTime:(NSString*)endTime
      data:(PlayDataStatisticResultData*)data { 
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.data = data;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self data])
    {
        [result setValue:[[self data] dictionary]forKey:@"data"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    self.data = [[PlayDataStatisticResultData alloc]initWithDic:[dictionary objectForKey:@"data"]];
    return self;
}
 @end
@implementation SnapshotCountStatisticResult
-(id) initWithStartTime:(NSString*) startTime
      endTime:(NSString*)endTime
      data:(SnapshotCountStatisticData*)data { 
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.data = data;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self data])
    {
        [result setValue:[[self data] dictionary]forKey:@"data"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    self.data = [[SnapshotCountStatisticData alloc]initWithDic:[dictionary objectForKey:@"data"]];
    return self;
}
 @end
@implementation TrafficStatisticResult
-(id) initWithStartTime:(NSString*) startTime
      endTime:(NSString*)endTime
      data:(TrafficStatisticResultData*)data { 
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.data = data;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self data])
    {
        [result setValue:[[self data] dictionary]forKey:@"data"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    self.data = [[TrafficStatisticResultData alloc]initWithDic:[dictionary objectForKey:@"data"]];
    return self;
}
 @end
@implementation RecordData
-(id) initWithPublishDomain:(NSString*) publishDomain
      appName:(NSString*)appName
      streamName:(NSString*)streamName
      date:(NSString*)date
      total:(NSNumber*)total
      detail:(NSArray<RecordDetail*>*)detail { 
     self.publishDomain = publishDomain;               
     self.appName = appName;               
     self.streamName = streamName;               
     self.date = date;               
     self.total = total;               
     self.detail = detail;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomain])
    {
        [result setValue:[self publishDomain] forKey:@"publishDomain"];
    }
    if([self appName])
    {
        [result setValue:[self appName] forKey:@"appName"];
    }
    if([self streamName])
    {
        [result setValue:[self streamName] forKey:@"streamName"];
    }
    if([self date])
    {
        [result setValue:[self date] forKey:@"date"];
    }
    if([self total])
    {
        [result setValue:[self total] forKey:@"total"];
    }
    if([self detail])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self detail] count]; i++) {
            RecordDetail* item = [[self detail] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"detail"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publishDomain = [dictionary objectForKey:@"publishDomain"];
    self.appName = [dictionary objectForKey:@"appName"];
    self.streamName = [dictionary objectForKey:@"streamName"];
    self.date = [dictionary objectForKey:@"date"];
    self.total = [dictionary objectForKey:@"total"];
    NSArray* detailArray = [dictionary objectForKey:@"detail"];
    if(detailArray&&![detailArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [detailArray count];i++)
        {
            RecordDetail* item = [[RecordDetail alloc]initWithDic:[detailArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.detail = propertyArray;
    }
    return self;
}
 @end
@implementation RankingUrlResultData
-(id) initWithUrl:(NSString*) url
      rank:(NSNumber*)rank
      md5:(NSString*)md5
      value:(NSNumber*)value
      data:(NSArray<RankingUrlResultRankData*>*)data { 
     self.url = url;               
     self.rank = rank;               
     self.md5 = md5;               
     self.value = value;               
     self.data = data;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self url])
    {
        [result setValue:[self url] forKey:@"url"];
    }
    if([self rank])
    {
        [result setValue:[self rank] forKey:@"rank"];
    }
    if([self md5])
    {
        [result setValue:[self md5] forKey:@"md5"];
    }
    if([self value])
    {
        [result setValue:[self value] forKey:@"value"];
    }
    if([self data])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self data] count]; i++) {
            RankingUrlResultRankData* item = [[self data] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"data"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.url = [dictionary objectForKey:@"url"];
    self.rank = [dictionary objectForKey:@"rank"];
    self.md5 = [dictionary objectForKey:@"md5"];
    self.value = [dictionary objectForKey:@"value"];
    NSArray* dataArray = [dictionary objectForKey:@"data"];
    if(dataArray&&![dataArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [dataArray count];i++)
        {
            RankingUrlResultRankData* item = [[RankingUrlResultRankData alloc]initWithDic:[dataArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.data = propertyArray;
    }
    return self;
}
 @end
@implementation LiveStreamUserNumResult
-(id) initWithStartTime:(NSString*) startTime
      endTime:(NSString*)endTime
      data:(LiveStreamUserNumResultData*)data { 
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.data = data;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self data])
    {
        [result setValue:[[self data] dictionary]forKey:@"data"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    self.data = [[LiveStreamUserNumResultData alloc]initWithDic:[dictionary objectForKey:@"data"]];
    return self;
}
 @end
@implementation RankingUrlResult
-(id) initWithRankingList:(NSArray<RankingUrlResultData*>*) rankingList { 
     self.rankingList = rankingList;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self rankingList])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self rankingList] count]; i++) {
            RankingUrlResultData* item = [[self rankingList] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"rankingList"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* rankingListArray = [dictionary objectForKey:@"rankingList"];
    if(rankingListArray&&![rankingListArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [rankingListArray count];i++)
        {
            RankingUrlResultData* item = [[RankingUrlResultData alloc]initWithDic:[rankingListArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.rankingList = propertyArray;
    }
    return self;
}
 @end
@implementation DomainsLogResult
-(id) initWithDomain:(NSString*) domain
      logList:(NSArray<DomainsLogResultData*>*)logList { 
     self.domain = domain;               
     self.logList = logList;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self domain])
    {
        [result setValue:[self domain] forKey:@"domain"];
    }
    if([self logList])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self logList] count]; i++) {
            DomainsLogResultData* item = [[self logList] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"logList"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.domain = [dictionary objectForKey:@"domain"];
    NSArray* logListArray = [dictionary objectForKey:@"logList"];
    if(logListArray&&![logListArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [logListArray count];i++)
        {
            DomainsLogResultData* item = [[DomainsLogResultData alloc]initWithDic:[logListArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.logList = propertyArray;
    }
    return self;
}
 @end
@implementation PublishStreamInfoResult
-(id) initWithStartTime:(NSString*) startTime
      endTime:(NSString*)endTime
      data:(PublishStreamInfoData*)data { 
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.data = data;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self data])
    {
        [result setValue:[[self data] dictionary]forKey:@"data"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    self.data = [[PublishStreamInfoData alloc]initWithDic:[dictionary objectForKey:@"data"]];
    return self;
}
 @end
@implementation DomainDetails
-(id) initWithPublishDomains:(NSArray<PublishDomain*>*) publishDomains
      playDomains:(NSArray<PlayDomain*>*)playDomains { 
     self.publishDomains = publishDomains;               
     self.playDomains = playDomains;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomains])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self publishDomains] count]; i++) {
            PublishDomain* item = [[self publishDomains] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"publishDomains"];
    }
    if([self playDomains])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self playDomains] count]; i++) {
            PlayDomain* item = [[self playDomains] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"playDomains"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* publishDomainsArray = [dictionary objectForKey:@"publishDomains"];
    if(publishDomainsArray&&![publishDomainsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [publishDomainsArray count];i++)
        {
            PublishDomain* item = [[PublishDomain alloc]initWithDic:[publishDomainsArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.publishDomains = propertyArray;
    }
    NSArray* playDomainsArray = [dictionary objectForKey:@"playDomains"];
    if(playDomainsArray&&![playDomainsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [playDomainsArray count];i++)
        {
            PlayDomain* item = [[PlayDomain alloc]initWithDic:[playDomainsArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.playDomains = propertyArray;
    }
    return self;
}
 @end
@implementation P2pConfigs
-(id) initWithPublishDomains:(NSArray<P2pPublishDomain*>*) publishDomains
      playDomains:(NSArray<P2pPlayDomain*>*)playDomains { 
     self.publishDomains = publishDomains;               
     self.playDomains = playDomains;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publishDomains])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self publishDomains] count]; i++) {
            P2pPublishDomain* item = [[self publishDomains] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"publishDomains"];
    }
    if([self playDomains])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self playDomains] count]; i++) {
            P2pPlayDomain* item = [[self playDomains] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"playDomains"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* publishDomainsArray = [dictionary objectForKey:@"publishDomains"];
    if(publishDomainsArray&&![publishDomainsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [publishDomainsArray count];i++)
        {
            P2pPublishDomain* item = [[P2pPublishDomain alloc]initWithDic:[publishDomainsArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.publishDomains = propertyArray;
    }
    NSArray* playDomainsArray = [dictionary objectForKey:@"playDomains"];
    if(playDomainsArray&&![playDomainsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [playDomainsArray count];i++)
        {
            P2pPlayDomain* item = [[P2pPlayDomain alloc]initWithDic:[playDomainsArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.playDomains = propertyArray;
    }
    return self;
}
 @end
@implementation LiveStatisticGroupByStreamResult
-(id) initWithStartTime:(NSString*) startTime
      endTime:(NSString*)endTime
      data:(NSArray<LiveStatisticGroupByStreamResultData*>*)data { 
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.data = data;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self data])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self data] count]; i++) {
            LiveStatisticGroupByStreamResultData* item = [[self data] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"data"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    NSArray* dataArray = [dictionary objectForKey:@"data"];
    if(dataArray&&![dataArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [dataArray count];i++)
        {
            LiveStatisticGroupByStreamResultData* item = [[LiveStatisticGroupByStreamResultData alloc]initWithDic:[dataArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.data = propertyArray;
    }
    return self;
}
 @end
@implementation LiveStatisticGroupByAreaIspResultData
-(id) initWithArea:(NSString*) area
      ispData:(NSArray<LiveStatisticGroupByAreaIspResultIspData*>*)ispData { 
     self.area = area;               
     self.ispData = ispData;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self area])
    {
        [result setValue:[self area] forKey:@"area"];
    }
    if([self ispData])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self ispData] count]; i++) {
            LiveStatisticGroupByAreaIspResultIspData* item = [[self ispData] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"ispData"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.area = [dictionary objectForKey:@"area"];
    NSArray* ispDataArray = [dictionary objectForKey:@"ispData"];
    if(ispDataArray&&![ispDataArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [ispDataArray count];i++)
        {
            LiveStatisticGroupByAreaIspResultIspData* item = [[LiveStatisticGroupByAreaIspResultIspData alloc]initWithDic:[ispDataArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.ispData = propertyArray;
    }
    return self;
}
 @end
@implementation LiveStatisticGroupByAreaResult
-(id) initWithStartTime:(NSString*) startTime
      endTime:(NSString*)endTime
      data:(NSArray<LiveStatisticGroupByAreaResultData*>*)data { 
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.data = data;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self data])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self data] count]; i++) {
            LiveStatisticGroupByAreaResultData* item = [[self data] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"data"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    NSArray* dataArray = [dictionary objectForKey:@"data"];
    if(dataArray&&![dataArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [dataArray count];i++)
        {
            LiveStatisticGroupByAreaResultData* item = [[LiveStatisticGroupByAreaResultData alloc]initWithDic:[dataArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.data = propertyArray;
    }
    return self;
}
 @end
@implementation P2pResultObject
-(id) initWithPageNumber:(NSNumber*) pageNumber
      pageSize:(NSNumber*)pageSize
      totalCount:(NSNumber*)totalCount
      p2pConfigs:(NSArray<P2pConfigs*>*)p2pConfigs { 
     self.pageNumber = pageNumber;               
     self.pageSize = pageSize;               
     self.totalCount = totalCount;               
     self.p2pConfigs = p2pConfigs;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self pageNumber])
    {
        [result setValue:[self pageNumber] forKey:@"pageNumber"];
    }
    if([self pageSize])
    {
        [result setValue:[self pageSize] forKey:@"pageSize"];
    }
    if([self totalCount])
    {
        [result setValue:[self totalCount] forKey:@"totalCount"];
    }
    if([self p2pConfigs])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self p2pConfigs] count]; i++) {
            P2pConfigs* item = [[self p2pConfigs] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"p2pConfigs"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.pageNumber = [dictionary objectForKey:@"pageNumber"];
    self.pageSize = [dictionary objectForKey:@"pageSize"];
    self.totalCount = [dictionary objectForKey:@"totalCount"];
    NSArray* p2pConfigsArray = [dictionary objectForKey:@"p2pConfigs"];
    if(p2pConfigsArray&&![p2pConfigsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [p2pConfigsArray count];i++)
        {
            P2pConfigs* item = [[P2pConfigs alloc]initWithDic:[p2pConfigsArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.p2pConfigs = propertyArray;
    }
    return self;
}
 @end
@implementation LiveStatisticGroupByAreaIspResult
-(id) initWithStartTime:(NSString*) startTime
      endTime:(NSString*)endTime
      data:(LiveStatisticGroupByAreaIspResultData*)data { 
     self.startTime = startTime;               
     self.endTime = endTime;               
     self.data = data;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self endTime])
    {
        [result setValue:[self endTime] forKey:@"endTime"];
    }
    if([self data])
    {
        [result setValue:[[self data] dictionary]forKey:@"data"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.endTime = [dictionary objectForKey:@"endTime"];
    self.data = [[LiveStatisticGroupByAreaIspResultData alloc]initWithDic:[dictionary objectForKey:@"data"]];
    return self;
}
 @end
 
 


